// 这里都有默认值的
var obj = {
  name: "yz",
  age: 10,
}

// 数据属性描述符
Object.defineProperty(obj, "address", {
  // 配置
  // value: "beijing",  //默认undefined
  // 不可应重新定义属性描述符
  // configurable: false, //默认false
  // 配置该属性是否可枚举（查看、取得该值）
  // enumerable: true, //默认enumerable
  // 该特性是属性是否可以修改、写入
  // writable: false //默认为false

})
// 测试configurable
// delete obj.name
// console.log(obj.name);
// delete obj.address
// console.log(obj.address);

// Object.defineProperty(obj, "address", {
//   value: "guangzhou",
//   configurable: true
// })

// 测试enumerable
// console.log(obj);
// for (var key in obj) {
//   console.log(key);
// }
// console.log(Object.keys(obj));

// 测试writable
obj.address = "shanghai"
console.log(obj.address);

